/**
 * 包含应用中所有接口请求函数的模块
 */
/*
export default {
    xxx(){},
    yyy(){}
}
*
// 或者
/** 
export function xxx(){

}
export function yyy(){
    
}
*/
import jsonp from 'jsonp'
import ajax from './ajax'
import { message } from 'antd'
// export function login(username,password){
//     return ajax("/login",{username,password},"POST")
// }

// const BASE = "http://localhost:5000"
const BASE = '';

// 用户登录
export const login = (username, password) => ajax(BASE + "/login", { username, password }, "POST")

// 添加用户
export const addUser = (user) => ajax(BASE + "/manage/user/add", user, "POST")

// 获取一级/二级分类的列表
export const reqCategorys = (parentId) => ajax(BASE + "/manage/category/list", { parentId })

// 添加分类
export const addCategory = (categoryName, parentId) => ajax(BASE + '/manage/category/add', { categoryName, parentId }, 'POST')

// 更新分类
export const updateCategory = ({ categoryId, categoryName }) => ajax(BASE + '/manage/category/update', { categoryId, categoryName }, 'POST')

//获取商品分页列表
export const reqProducts = (pageNum, pageSize) => ajax(BASE + '/manage/product/list', { pageNum, pageSize }, 'GET')

//删除图片
export const deleteImg = (name) => ajax(BASE + '/manage/img/delete', { name }, 'POST')

// 添加/修改商品
export const addOrUpdateProduct = (product) => ajax(BASE + '/manage/product/' + (product._id ? 'update' : 'add'), product, 'POST')

// 获取所有角色的列表
export const reqRoles = () => ajax(BASE + '/manage/role/list')

// 添加角色
export const reqAddRole = (roleName) => ajax(BASE + '/manage/role/add', { roleName }, "POST")

// 更新角色
export const reqUpdateRole = (role) => ajax(BASE + '/manage/role/update', role, "POST")

// 获取用户列表
export const reqUsers = () => ajax(BASE + '/manage/user/list');

// 删除用户
export const reqDeleteUser = (userId) => ajax(BASE + '/manage/user/delete', { userId }, "POST");

// 添加/更新用户
export const reqAddOrUpdateUser = (user) => ajax(BASE + '/manage/user/'+(user._id ? 'update' : 'add'), user, 'POST')

/*
json请求的接口请求函数
 */
export const reqWeather = (city) => {

  return new Promise((resolve, reject) => {
    const url = `http://api.map.baidu.com/telematics/v3/weather?location=${city}&output=json&ak=86h1Bka2cKNqOTi1RtlSGFS9ggF9XtCK`
    // 发送jsonp请求
    jsonp(url, { param: 'callback' }, (err, data) => {
      console.log('jsonp()', err, data)
      // 如果成功了
      if (!err && data.status === 'success') {
        // 取出需要的数据
        const { dayPictureUrl, weather } = data.results[0].weather_data[0]
        resolve({ dayPictureUrl, weather })
      } else {
        // 如果失败了
        message.error('获取天气信息失败!')
      }

    })
  })
}
  // reqWeather('北京')
/*
jsonp解决ajax跨域的原理
  1). jsonp只能解决GET类型的ajax请求跨域问题
  2). jsonp请求不是ajax请求, 而是一般的get请求
  3). 基本原理
   浏览器端:
      动态生成<script>来请求后台接口(src就是接口的url)
      定义好用于接收响应数据的函数(fn), 并将函数名通过请求参数提交给后台(如: callback=fn)
   服务器端:
      接收到请求处理产生结果数据后, 返回一个函数调用的js代码, 并将结果数据作为实参传入函数调用
   浏览器端:
      收到响应自动执行函数调用的js代码, 也就执行了提前定义好的回调函数, 并得到了需要的结果数据
 */